package cn.dao.imp;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.dao.CartDao;
import cn.entity.Cart;
import cn.entity.User;

public class CartDaoImp extends HibernateDaoSupport implements CartDao {

	/*
	 * 插入一条cart数据
	 * 
	 * @see cn.dao.CartDao#insert(cn.entity.Cart)
	 */
	@Override
	public void insert(Cart cart) {
		getHibernateTemplate().save(cart);
	}

	/*
	 * 根据数据需求判断插入或者更新
	 * 
	 * @see cn.dao.CartDao#insertOrUpdate(cn.entity.Cart)
	 */
	@Override
	public void insertOrUpdate(Cart cart) {
		getHibernateTemplate().saveOrUpdate(cart);
	}

	/*
	 * 按照id删除一条cart数据
	 * 
	 * @see cn.dao.CartDao#delete(java.lang.Integer)
	 */
	@Override
	public void delete(Integer id) {
		Cart cart = new Cart();
		cart.setId(id);
		getHibernateTemplate().delete(cart);

	}

	/*
	 * 更新cart数据
	 * 
	 * @see cn.dao.CartDao#update(cn.entity.Cart)
	 */
	@Override
	public void update(Cart cart) {
		getHibernateTemplate().update(cart);
	}

	/*
	 * cart的按照用户ID查询
	 * 
	 * @see cn.dao.CartDao#query(cn.entity.User)
	 */
	@Override
	public List queryByUser(User user) {
		return getHibernateTemplate().find("from Cart c where c.user.id=?", user.getId());
	}

	@Override
	public List query(Cart cart) {
		return getHibernateTemplate().find("from Cart c where c.user.id=? and c.goods.goodsname like ?",cart.getUser().getId(),("%"+cart.getGoods().getGoodsname())+"%");
	}
	
	@Override
	public List getAll() {
		return getHibernateTemplate().find("from Cart");
	}

	@Override
	public Cart getCartById(Integer id) {
		return getHibernateTemplate().get(Cart.class, id);
	}
	
	@Override
	public List getCartByGid(Integer gid,Integer uid){
		return getHibernateTemplate().find("from Cart where goods.id="+gid+" and user.id="+uid);
	}
	

}
